직교 투영
투영은 (회전과 반사 외에) 선형 변환의 중요한 종류이며 그래픽스, 부호 이론, 통계학 및 머신러닝에서 중요한 역할을 한다. 머신러닝에서, 우리는 종종 고차원인 데이터를 다룬다. 고차원 데이터는 분석하거나 시각화하기 어렵다. 그러나, 고차원 데이터는 꽤 자주 대부분의 정보가 오직 몇 개의 차원에만 포함되어 있고, 대부분의 다른 차원들은 데이터의 핵심 성질을 기술하는 데 필수적이지 않다는 속성을 가지고 있다.
우리가 고차원 데이터를 압축하거나 시각화할 때, 우리는 정보를 잃게 될 것이다. 이 압축 손실을 최소화하기 위해, 우리는 이상적으로 데이터 내에서 가장 정보가 많은 차원들을 찾는다. 1장에서 논의했듯이 데이터는 벡터로 표현될 수 있으며, 이 장에서 우리는 데이터 압축을 위한 몇 가지 기초적인 도구들을 논의할 것이다. 더 구체적으로, 우리는 원래의 고차원 데이터를 더 낮은 차원의 특징 공간(feature space)으로 투영할 수 있고, 데이터셋에 대해 더 많이 배우고 관련된 패턴을 추출하기 위해 이 더 낮은 차원의 공간에서 작업할 수 있다.
예를 들어, 피어슨(1901)과 호텔링(1933)에 의한 주성분 분석(PCA)과 심층 신경망(예: 딥 오토인코더) 같은 머신러닝 알고리즘들은 차원 축소의 아이디어를 깊이 있게 활용한다. 다음에서, 우리는 직교 투영에 초점을 맞출 것인데, 이는 10장에서 선형 차원 축소를 위해, 그리고 12장에서 분류를 위해 사용할 것이다. 심지어 9장에서 논의할 선형 회귀도 직교 투영을 사용하여 해석될 수 있다. 주어진 더 낮은 차원의 부분 공간에 대해, 고차원 데이터의 직교 투영은 가능한 한 많은 정보를 유지하고 원래 데이터와 그에 대응하는 투영 사이의 차이/오차를 최소화한다.
그러한 직교 투영의 예시는 그림 3.9에 주어져 있다. 우리가 이러한 투영을 어떻게 얻는지 자세히 설명하기 전에, 투영이 실제로 무엇인지 정의해보자.

정의 3.10 (투영). $V$ 를 벡터 공간이라고 하고 $U \subseteq V$ 를 $V$ 의 부분 공간이라고 하자. 선형 사상 $\pi : V \to U$ 가 $\pi^2 = \pi \circ \pi = \pi$ 를 만족하면 투영(projection)이라고 부른다.
$\to$ 이때 $\pi$ 는 실수가 아닌 함수이며 위 정의는 투영이 멱등성을 가짐을 보인다( $\pi(\pi(x)) = \pi(x)$ ).
$\quad$ 선형 사상은 변환 행렬로 표현될 수 있으므로(2.7절 참조), 앞선 정의는 변환 행렬의 특수한 종류인 투영 행렬(projection matrices) $P_\pi$ 에도 똑같이 적용되며, 이는 $P_\pi^2 = P_\pi$ 라는 성질을 보인다.
$\quad$ 다음에서, 우리는 내적 공간 $(\mathbb{R}^n, \langle \cdot, \cdot \rangle)$ 내의 벡터들을 부분 공간으로 직교 투영하는 것을 유도할 것이다. 우리는 직선(lines)이라고도 불리는 1차원 부분 공간에서 시작할 것이다. 별도로 언급되지 않는다면, 우리는 내적으로 점곱(dot product) $\langle x, y \rangle = x^\top y$ 를 가정한다.
3.8.1 1차원 부분 공간(직선)으로의 투영
원점을 지나는 직선(1차원 부분 공간)과 기저 벡터 $b \in \mathbb{R}^n$ 이 주어졌다고 가정하자. 이 직선은 $b$ 에 의해 생성되는 1차원 부분 공간 $U \subseteq \mathbb{R}^n$ 이다. 우리가 $x \in \mathbb{R}^n$ 을 $U$ 로 투영할 때, 우리는 $x$ 에 가장 가까운 벡터 $\pi_U(x) \in U$ 를 찾는다. 기하학적 논증을 사용하여 투영 $\pi_U(x)$ 의 몇 가지 성질을 특징지어 보자 (그림 3.10(a)가 삽화로 제공된다):

- 투영 $\pi_U(x)$ 는 $x$ 에 가장 가깝다. 여기서 가깝다는 것은 거리 $\vert x - \pi_U(x)\vert$ 가 최소라는 것을 의미한다. 이에 따라 $\pi_U(x)$ 에서 $x$ 로 향하는 선분 $\pi_U(x) - x$ 는 $U$ 에 직교하며, 따라서 $U$ 의 기저 벡터 $b$ 와도 직교한다. 벡터 사이의 각도는 내적을 통해 정의되므로, 직교 조건은 $\langle \pi_U(x) - x, b \rangle = 0$ 을 산출한다.
- $x$ 의 $U$ 로의 투영 $\pi_U(x)$ 는 반드시 $U$ 의 원소여야 하며, 따라서 $U$ 를 생성하는 기저 벡터 $b$ 의 배수여야 한다. 그러므로, 어떤 $\lambda \in \mathbb{R}$ 에 대해 $\pi_U(x) = \lambda b$ 이다. 이때 $\lambda$ 는 $b$ 에 대한 $\pi_U(x)$ 의 좌표이다.
다음의 세 단계에서, 우리는 좌표 $\lambda$ , 투영 $\pi_U(x) \in U$ , 그리고 임의의 $x \in \mathbb{R}^n$ 를 $U$ 로 매핑하는 투영 행렬 $P_\pi$ 를 결정한다.
- 좌표 $\lambda$ 찾기 (Finding the coordinate $\lambda$ ). 직교성 조건은 다음을 산출한다.
우리는 이제 내적의 이중선형성(bilinearity)을 활용하여 다음을 얻는다.
마지막 단계에서, 우리는 내적이 대칭적이라는 사실을 활용했다. 만약 우리가 $\langle \cdot, \cdot \rangle$ 를 점곱(dot product)으로 선택한다면, 다음을 얻는다.
만약 $\Vert b\Vert = 1$ 이라면, 투영의 좌표 $\lambda$ 는 $b^\top x$ 로 주어진다. (일반적인 내적에서도 $\Vert b\Vert =1$ 이면 $\lambda = \langle x, b \rangle$ 이다.)
- 투영점 $\pi_U(x)$ 찾기 (Finding the projection point)
$\pi_U(x) = \lambda b$ 이므로, 우리는 (3.40)을 이용해 즉시 다음을 얻는다.
여기서 마지막 등호는 점곱일 때만 성립한다. 우리는 또한 정의 3.1을 이용하여 $\pi_U(x)$ 의 길이를 계산할 수 있다.
따라서, 우리의 투영은 $b$ 의 길이의 $\vert \lambda\vert$ 배인 길이를 갖는다. 이것은 또한 $\lambda$ 가 기저 벡터 $b$ 에 대한 $\pi_U(x)$ 의 좌표라는 직관을 더해준다.
$\quad$ 만약 우리가 점곱을 내적으로 사용한다면, 다음을 얻는다.
여기서 $\omega$ 는 $x$ 와 $b$ 사이의 각도이다. 이 식은 삼각함수에서 익숙할 것이다. 만약 $\Vert x\Vert =1$ 이면, $x$ 는 단위 원 위에 놓인다. 그러면 $b$ 에 의해 생성된 수평축으로의 투영은 정확히 $\cos \omega$ 이고, 대응하는 벡터의 길이 $\vert \pi_U(x)\vert$ 는 $\vert \cos \omega\vert$ 이다. 이에 대한 삽화는 그림 3.10(b)에 주어져 있다.
- 투영 행렬 $P_\pi$ 찾기 (Finding the projection matrix)
우리는 투영이 선형 사상임을 안다(정의 3.10 참조). 따라서 $\pi_U(x) = P_\pi x$ 를 만족하는 투영 행렬 $P_\pi$ 가 존재한다. 점곱을 내적으로 사용하면
우리는 즉시 다음을 알 수 있다.
$b b^\top$ (그리고 결과적으로 $P_\pi$ )는 대칭 행렬(랭크 1인)이며, $\Vert b\Vert ^2 = \langle b, b \rangle$ 는 스칼라임에 주목하라.
투영 행렬 $P_\pi$ 는 임의의 벡터 $x \in \mathbb{R}^n$ 을 원점을 지나고 방향이 $b$ 인 직선(동등하게, $b$ 에 의해 생성된 부분 공간 $U$ )으로 투영한다.
참고 (Remark). 투영 $\pi_U(x) \in \mathbb{R}^n$ 은 여전히 $n$ 차원 벡터이며 스칼라가 아니다. 그러나, 우리는 투영을 표현하기 위해 더 이상 $n$ 개의 좌표가 필요하지 않고, 부분 공간 $U$ 를 생성(span)하는 기저 벡터 $b$ 에 대해 표현한다면 오직 하나의 좌표 $\lambda$ 만 있으면 된다.
$\to$ $P$ 가 왜 대칭행렬이며, 랭크가 1인지 증명해보자. 투영 행렬 $P = \frac{bb^\top}{b^\top b} = \frac{1}{\Vert b\Vert ^2} bb^\top$ 이며 편의상 스칼라 값 $\frac{1}{\vert b\vert ^2}$ 를 상수 $k$ 로 치환한다. ( $k > 0$ ) 즉, $P = k bb^\top$ 이다.
대칭행렬은 $P^\top=P$ 이다. $(kbb^\top)^\top = k(bb^\top)^\top = k(b^\top)^\top b^\top = kbb^\top$ 이므로 $P$ 는 대칭행렬이다.
$b = [b_1, b_2, \dots, b_n]^\top$ 라고 해보자. 외적(outer product) $bb^\top$ 전개는 다음과 같다.
이때 $j$ 번째 열을 뽑아보면 다음과 같다.
때문에 투영 행렬 $P = k bb^\top$ 의 $j$ 번째 열 $P_j$ 는 다음과 같다.
여기서 $(k b_j)$ 는 스칼라이다. 따라서 $P$ 의 모든 열은 벡터 $b$ 에 어떤 스칼라를 곱한 형태이다. 이로써 행렬 $P$ 의 열들은 선형독립이 아니다.
행렬의 랭크는 열공간(치역)의 차원, 혹은 선형 독립인 열 벡터의 최대 개수로 정의된다. $P$ 의 열벡터들이 생성하는 공간, 즉 $P$ 의 치역은 $P$ 의 모든 열벡터가 $b$ 와 평행하므로( $b$ 의 스칼라배이므로) 이 공간을 만드는 데 필요한 기저 벡터는 단 1개( $b$ )뿐이다. 따라서 $P$ 의 랭크는 1이며 이 공간의 차원도 1이다.
예제 3.10 (직선 위로의 투영)
원점을 지나고 $b = [1, 2, 2]^\top$ 에 의해 생성되는 직선으로의 투영 행렬 $P_\pi$ 를 구하라. $b$ 는 방향이자 1차원 부분 공간(원점을 지나는 직선)의 기저이다.
(3.46) 식을 이용해, 우리는 다음을 얻는다.
이제 특정한 $x$ 를 선택해 그것이 $b$ 에 의해 생성된 부분 공간에 놓이는지 확인해보자. $x = [1, 1, 1]^\top$ 에 대해, 투영은 다음과 같다.
$P_\pi$ 를 $\pi_U(x)$ 에 적용해도 아무것도 변하지 않는다는 점, 즉 $P_\pi \pi_U(x) = \pi_U(x)$ 임에 주목하라. 이것은 정의 3.10에 따라 투영 행렬 $P_\pi$ 가 모든 $x$ 에 대해 $P_\pi^2 x = P_\pi x$ 를 만족한다는 사실로부터 예상된 결과이다.
참고. 4장의 결과를 이용하면, $\pi_U(x)$ 가 $P_\pi$ 의 고유벡터(eigenvector)이며, 대응하는 고유값(eigenvalue)은 1이라는 것을 보일 수 있다.( $P_\pi(\pi_U(x)) = 1 \cdot \pi_U(x)$ )
3.8.2 일반적인 부분 공간으로의 투영
다음에서, 우리는 벡터 $\boldsymbol{x} \in \mathbb{R}^n$ 를 더 낮은 차원의 부분 공간 $U \subseteq \mathbb{R}^n$ ( $\dim(U) = m \ge 1$ )으로 직교 투영하는 것을 살펴본다. 이에 대한 삽화는 그림 3.11에 주어져 있다.

$\quad$ $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_m)$ 이 $U$ 의 순서가 있는 기저(ordered basis)라고 가정하자. $U$ 로의 임의의 투영 $\pi_U(\boldsymbol{x})$ 는 반드시 $U$ 의 원소여야 한다. 따라서, 그들은 기저 벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_m$ 의 선형 결합으로 표현될 수 있으며, $\pi_U(\boldsymbol{x}) = \sum_{i=1}^m \lambda_i \boldsymbol{b}_i$ 가 된다.
$\quad$ 1차원 경우와 마찬가지로, 우리는 투영 $\pi_U(\boldsymbol{x})$ 와 투영 행렬 $P_\pi$ 를 찾기 위해 3단계 절차를 따른다.
- 투영의 좌표 $\lambda_1, \dots, \lambda_m$ 찾기
다음 선형 결합이 $\boldsymbol{x} \in \mathbb{R}^n$ 에 가장 가깝도록 하는 좌표들을 찾는다.
1차원 경우와 같이, “가장 가깝다”는 것은 “최소 거리”를 의미하며, 이는 $U$ 에 속한 벡터 $\pi_U(\boldsymbol{x})$ 와 $\boldsymbol{x}$ 를 연결하는 벡터가 $U$ 의 모든 기저 벡터와 직교해야 함을 내포한다. 따라서, 우리는 $m$ 개의 연립 조건(점곱을 내적으로 가정)을 얻는다.
$\pi_U(\boldsymbol{x}) = B\boldsymbol{\lambda}$ 를 대입하면 다음과 같이 쓸 수 있다.
이를 동차 선형 방정식 시스템으로 얻으면 다음과 같다.
마지막 표현은 정규 방정식(normal equation)이라고 불린다. $\boldsymbol{b}_1, \dots, \boldsymbol{b}_m$ 이 $U$ 의 기저이므로 선형 독립이고, 따라서 $B^\top B \in \mathbb{R}^{m \times m}$ 은 정칙(regular, 역행렬 존재)이며 뒤집을 수 있다. 이것은 우리가 계수/좌표를 구할 수 있게 해 준다.( $\to$ 오차 벡터 $(\boldsymbol{x} - B\boldsymbol{\lambda})$ 가 부분 공간 $U$ 에 대해 법선 방향으로 서 있기 때문에, 이 조건을 만족하는 방정식을 ‘정규(perpendicular, 수직인)’방정식이라고 한다)
행렬 $(B^\top B)^{-1} B^\top$ 는 $B$ 의 유사 역행렬(pseudo-inverse)이라고도 불리며, 정사각형이 아닌 행렬 $B$ 에 대해 계산될 수 있다. 이는 오직 $B^\top B$ 가 양의 정부호(positive definite)일 것만 요구하는데, 이는 $B$ 가 풀 랭크(full rank)일 경우 성립한다.
- 투영 $\pi_U(\boldsymbol{x}) \in U$ 찾기. 우리는 이미 $\pi_U(\boldsymbol{x}) = B\boldsymbol{\lambda}$ 임을 확인했다. 따라서 (3.57)을 이용하면 다음과 같다.
- 투영 행렬 $P_\pi$ 찾기. (3.58)로부터, 우리는 $P_\pi \boldsymbol{x} = \pi_U(\boldsymbol{x})$ 를 해결하는 투영 행렬이 다음과 같아야 함을 즉시 알 수 있다.
참고 (Remark). 일반적인 부분 공간으로의 투영 해법은 1차원 경우를 특수한 경우로서 포함한다. 만약 $\dim(U)=1$ 이면, $B^\top B \in \mathbb{R}$ 은 스칼라이고 우리는 (3.59)의 투영 행렬을 $P_\pi = B(B^\top B)^{-1} B^\top = \frac{BB^\top}{B^\top B}$ 로 다시 쓸 수 있으며, 이는 정확히 (3.46)의 투영 행렬이다.
$\to$ $B$ 의 열들이 서로 독립이면, $B^\top B$ 는 Positive definit이며, 이는 역행렬을 가진다. 이를 증명하는 방법은 $B^\top B\mathbf{x}=\mathbf{0}$ 을 만족하는 해가 자명한 해 뿐인지 확인하면 된다.
$B^\top B$ 가 full rank인지 확인해볼 수 있다.
양변의 왼쪽에 $\mathbf{v}^T$ 를 곱하면:
결합 법칙을 이용해 괄호를 묶는다:
$(B \mathbf{v})^T, (B \mathbf{v})$ 는 벡터이며, 자기 자신과 내적해서 0이 나왔다는 것은, 그 벡터의 길이(norm)이 0이라는 뜻이다. $\Vert B \mathbf{v} \Vert ^2 = 0 \implies B \mathbf{v} = 0$
이때 $B$ 의 열들은 서로 독립이기 때문에 $B\mathbf{v}=\mathbf{0}$ 을 만족하는 $\mathbf{v}$ 는 $\mathbf{0}$ 인 경우밖에 없다.
예제 3.11 (2차원 부분 공간으로의 투영)
부분 공간 $U = \text{span}(\begin{bmatrix} 1 & 0 \ 1 & 1 \ 1 & 2 \end{bmatrix}) \subseteq \mathbb{R}^3$ 와 벡터 $x = \begin{bmatrix} 6 \ 0 \ 0 \end{bmatrix} \in \mathbb{R}^3$ 에 대해, 부분 공간 $U$ 에 대한 $x$ 의 좌표 $\lambda$ , 투영점 $\pi_U(x)$ , 그리고 투영 행렬 $P_\pi$ 를 구하라.
첫째, 우리는 $U$ 의 생성 집합이 기저(선형 독립)임을 확인하고 $U$ 의 기저 벡터들을 행렬 $B$ 로 작성한다.
둘째, 우리는 행렬 $B^\top B$ 와 벡터 $B^\top x$ 를 계산한다.
셋째, 우리는 정규 방정식 $B^\top B \lambda = B^\top x$ 를 풀어 $\lambda$ 를 찾는다.
넷째, $x$ 의 $U$ 로의 투영 $\pi_U(x)$ , 즉 $B$ 의 열 공간으로의 투영은 다음과 같이 직접 계산될 수 있다.
이에 대응하는 투영 오차(projection error)는 원래 벡터와 $U$ 로의 투영 사이의 차이 벡터(difference vector)의 노름(길이)이다.(평면 $U$ 위에 어떤 점을 가져와도 투영 오차는 $\sqrt{6}$ 보다 크다.)
다섯째, (임의의 $x \in \mathbb{R}^3$ 에 대한) 투영 행렬은 다음과 같이 주어진다.
결과를 검증하기 위해, 우리는 (a) 변위 벡터 $\pi_U(x) - x$ 가 $U$ 의 모든 기저 벡터와 직교하는지 확인하고, (b) $P_\pi = P_\pi^2$ 임을 확인할 수 있다.

참고 (Remark). 투영 $\pi_U(x)$ 는 비록 $m$ 차원 부분 공간 $U \subseteq \mathbb{R}^n$ 에 놓여 있더라도 여전히 $\mathbb{R}^n$ 의 벡터이다. 그러나, 투영된 벡터를 표현하기 위해서는 $U$ 의 기저 벡터 $b_1, \dots, b_m$ 에 대한 $m$ 개의 좌표 $\lambda_1, \dots, \lambda_m$ 만 있으면 된다.
참고 (Remark). 일반적인 내적을 가진 벡터 공간에서는, 내적에 의해 정의되는 각도와 거리를 계산할 때 주의를 기울여야 한다.
$\quad$ 투영은 선형 시스템 $Ax = b$ 가 해를 갖지 않는 상황을 살펴볼 수 있게 해 준다. 이것이 의미하는 바를 상기해보면, $b$ 가 $A$ 의 생성(span) 안에 놓여 있지 않다는 것, 즉 벡터 $b$ 가 $A$ 의 열들에 의해 생성된 부분 공간 안에 없다는 뜻이다. 선형 방정식이 정확하게 풀릴 수 없다는 사실이 주어졌을 때, 우리는 근사해(approximate solution)를 찾을 수 있다. 그 아이디어는 $A$ 의 열들에 의해 생성된 부분 공간 안에서 $b$ 에 가장 가까운 벡터를 찾는 것이다. 즉, 우리는 $A$ 의 열들에 의해 생성된 부분 공간으로의 $b$ 의 직교 투영을 계산한다.
이 문제는 과결정 시스템(overdetermined system)의 최소제곱해(least-squares solution, 점곱을 내적으로 가정할 때)라고 불리는 해법으로서 실전에서 자주 발생한다. 이것은 9.4절에서 더 논의된다. 재구성 오차(reconstruction errors) (3.63)를 사용하는 것은 주성분 분석(10.3절)을 유도하는 하나의 가능한 접근법이다.
참고 (Remark). 우리는 방금 벡터 $x$ 를 기저 벡터 ${b_1, \dots, b_k}$ 를 가진 부분 공간 $U$ 로 투영하는 것을 살펴보았다. 만약 이 기저가 정규직교 기저(ONB)라면, 즉 (3.33)과 (3.34)가 만족된다면, 투영 방정식 (3.58)은 다음과 같이 크게 단순화된다.
이는 좌표와 함께 $B^\top B = I$ 가 되기 때문이다.
이것은 우리가 더 이상 (3.58)에서 역행렬을 계산할 필요가 없다는 것을 의미하며, 이는 계산 시간을 절약해 준다.
$\to$ (3.57)에서 $\lambda = (B^\top B)^{-1} B^\top x$ 임을 확인했다. 만약 부분공간 $U$ 기저가 ONB라면 다음을 만족한다.
이때 대각선 성분은 자기 자신과의 내적이므로 길이의 제곱인 1이 되며, 나머지 성분은 서로 수직이므로 내적값은 0이 된다. 따라서 $B^\top B = I$ 이다. 이를 (3.57)에 대입해보면:
이를 (3.58)에 대입해보면:
역행렬 계산이 사라지며 효율적인 계산이 가능하다.
3.8.3 그람-슈미트 직교화
투영은 $n$ 차원 벡터 공간 $V$ 의 임의의 기저 $(b_1, \dots, b_n)$ 을 $V$ 의 직교/정규직교 기저 $(u_1, \dots, u_n)$ 으로 구조적으로 변환할 수 있게 해주는 그람-슈미트 방법의 핵심이다. 이 기저는 항상 존재하며 $\text{span}[b_1, \dots, b_n] = \text{span}[u_1, \dots, u_n]$ 이다. 그람-슈미트 직교화 방법은 임의의 기저 $(b_1, \dots, b_n)$ 로부터 다음과 같이 반복적으로 직교 기저 $(u_1, \dots, u_n)$ 을 구성한다:
(3.68)에서, $k$ 번째 기저 벡터 $b_k$ 는 앞서 구성된 $k-1$ 개의 직교 벡터 $u_1, \dots, u_{k-1}$ 에 의해 생성된 부분 공간으로 투영된다. 그리고 이 투영을 $b_k$ 에서 뺀다. 이는 $u_1, \dots, u_{k-1}$ 에 의해 생성된 $(k-1)$ 차원 부분 공간에 직교하는 벡터 $u_k$ 를 산출한다. 모든 $n$ 개의 기저 벡터 $b_1, \dots, b_n$ 에 대해 이 절차를 반복하면 $V$ 의 직교 기저 $(u_1, \dots, u_n)$ 을 얻는다. 만약 우리가 $u_k$ 를 정규화(크기를 1로 만듦)한다면, 우리는 $\Vert u_k\Vert =1$ ( $k=1, \dots, n$ )인 정규직교 기저(ONB)를 얻는다.
예제 3.12 (그람-슈미트 직교화)

$\mathbb{R}^2$ 의 기저 $(b_1, b_2)$ 를 고려하자. 여기서
이며, 그림 3.12(a)를 참조하라. 그람-슈미트 방법을 사용하여, 우리는 다음과 같이 $\mathbb{R}^2$ 의 직교 기저 $(u_1, u_2)$ 를 구성한다 (점곱을 내적으로 가정).
이 단계들은 그림 3.12(b)와 (c)에 묘사되어 있다. 우리는 즉시 $u_1$ 과 $u_2$ 가 직교함을, 즉 $u_1^\top u_2 = 0$ 임을 알 수 있다.
3.8.4 아핀 부분 공간으로의 투영
지금까지, 우리는 벡터를 더 낮은 차원의 부분 공간 $U$ 로 투영하는 방법에 대해 논의했다. 다음으로, 우리는 벡터를 아핀 부분 공간으로 투영하는 해법을 제공한다.
$\quad$ 그림 3.13(a)의 설정을 고려하자. 우리에게 아핀 공간 $L = x_0 + U$ 가 주어졌고, 여기서 $b_1, b_2$ 는 $U$ 의 기저 벡터이다. $x$ 의 $L$ 로의 직교 투영 $\pi_L(x)$ 를 결정하기 위해, 우리는 이 문제를 우리가 해결할 줄 아는 문제, 즉 벡터 부분 공간(원점을 지나는 공간)으로의 투영 문제로 변환한다. 거기에 도달하기 위해, 우리는 $x$ 와 $L$ 에서 지지 점(support point) $x_0$ 를 뺀다. 그러면 $L - x_0 = U$ 가 되어 정확히 벡터 부분 공간 $U$ 가 된다. 이제 우리는 3.8.2절에서 논의했던 부분 공간으로의 직교 투영을 사용할 수 있으며 투영 $\pi_U(x - x_0)$ 를 얻는다. 이는 그림 3.13(b)에 묘사되어 있다. 이 투영은 이제 $x_0$ 를 더함으로써 다시 $L$ 로 평행 이동될 수 있으며, 우리는 아핀 공간 $L$ 로의 직교 투영을 다음과 같이 얻는다.
여기서 $\pi_U(\cdot)$ 는 부분 공간 $U$ , 즉 $L$ 의 방향 공간(direction space)으로의 직교 투영이다 (그림 3.13(c) 참조).

$\quad$ 그림 3.13으로부터, $x$ 에서 아핀 공간 $L$ 까지의 거리는 $x - x_0$ 에서 $U$ 까지의 거리와 동일하다는 것이 명백하다. 즉,
$\quad$ 우리는 아핀 부분 공간으로의 투영을 사용하여 12.1절에서 분리 초평면(separating hyperplane)의 개념을 유도할 것이다.